#ifndef _CAT_SPRITE_LOADER_H_
#define _CAT_SPRITE_LOADER_H_

#include "cocos2d.h"
#include "Supporting/Enums/EnumCatType.h"
#include "Supporting/Enums/EnumCatAnimation.h"

using namespace cocos2d;



class CatSpriteLoader
{
private:
	CatSpriteLoader();
	static char*	getStatusFileName();
	static char* 	getCatFileName(EnumCatType catType);
	static int 		getCatSpriteWidth(EnumCatType catType, EnumCatAnimation catAnim);
	static int		getCatAnimationRow(EnumCatType catType, EnumCatAnimation catAnim);
	static int 		getCatAnimationFrameCount(EnumCatType catType, EnumCatAnimation catAnim);
	static int		getCatEffectsRow(EnumCatAnimation catAnim);

public:
	//animation properties
	static const float ANIMATION_INTERVAL = 0.1;

	//sprite width
	static const int SPRITE_WIDTH = 100; //used as height also

	//sprite tags
	static const int SPRITE_CAT_TAG = 10; //cat animation tag

	static CCSpriteFrame* 	getSpriteFrame(EnumCatType catType);
	static CCSpriteFrame*	getSpecialSpriteFrame(EnumCatType catType);
	static CCAnimate*		getCatAnimation(EnumCatType catType, EnumCatAnimation catAnim);
	static CCAnimate*		getCatStatusAnimation(EnumCatAnimation catAnim);
	static CCAnimate*		getCatProjectileAnimation(EnumCatType, EnumCatAnimation catAnim);
	static float			getAnimationDuration(EnumCatType catType, EnumCatAnimation catAnim);

	//TODO: check if its cached this way
	static void 			preloadSpriteSheets();

};

#endif
